python中万物皆对象。数据类型是对象,函数是对象,模块也是对象。
python所有的类都继承自最基础类object
OOP编程理念
  object oriented programming
  把对象当作程序的基本单元,对象包括数据和操作数据的函数
本质是把问题解决抽象为以对象为中心的计算机程序
重点在于高抽象的复用代码
可以提高协作产量
面向过程VS面向对象
面向过程:以解决问题的过程步骤为核心编写程序
面向对象:以问题对象构建和交互为核心编写程序
面向对象三个特征
- 封装 (Encapsulation) - 属性和方法的抽象,用数据和操作数据的方法来形成对象逻辑 - 属性的抽象:对类的属性进行定义、隔离及保护 - 方法的抽象:对类的方法进行定义、隔离及保护 - 目标是形成一个类对外可操作属性和方法的接口 
- 继承 (Inheritance) - 代码复用的高级抽象,用对象之间的继承关系来形成代码复用 - 实现了以类为单位的高抽象级别代码复用 - 继承是字类几乎完全使用原有类属性与方法的过程 
- 多态 (Polymorphism)(存疑) - 方法灵活性的抽象,让对象的操作更加灵活,更多复用代码 - 参数类型的多态:一个方法能处理多个类型的能力 - 参数形式的多态:一个方法能接受多个参数的能力 - 多态是OOP的一个传统概念,python天然支持多态,不需要特殊语法 
面向对象术语
- 类 class - 逻辑抽象和产生对象的模板,一组变量和函数的特定组合 
- 对象 object - 独立的存在 或 作为目标的事物 
 独立性:对象都存在清晰的边界
 功能性:对象都能表现出一些功能、操作或行为
 交互性:对象之间存在交互,如运算和继承- 对象分为类对象class object和实例对象 instance object - 类对象是维护每个python类基本信息的数据结构,全局只有一个 - 实例对象是python类实例化后产生的对象,简称’对象‘。实例对象可以生成多个 
- 属性 - 存储数据的‘变量’ - 包括类属性、 实例属性 
- 方法 - 操作数据的‘函数’ - 包括 类方法、实例方法、自由方法、静态方法、保留方法 
- 实例化 - 从类到对象的过程,所有”对象”都源于某个“类” 
- 继承相关:基类、派生类、字类、父类、超类,重写 
- 命名空间:程序元素作用域的表达 
- 构造和析构:生成对象和删除对象的过程